# Generated by Django 3.2.18 on 2023-09-28 12:36

from django.db import migrations, models
import django.db.models.deletion
from django.utils import timezone

from siriuso.utils import set_enhavo


def kanvasoj_objekto_ligilo_tipoj(apps, schema_editor):
    '''
        создание справочных типов связей объектов по умолчанию
    '''
    tipoj = [
        (1, 'Родительско-дочерняя'),
    ]

    tipo_modelo = apps.get_model('kanvasoj', 'KanvasoObjektoLigiloTipo')

    for kodo, nomo in tipoj:
        try:
            tipo_modelo.objects.get(id=kodo, forigo=False, publikigo=True)
        except tipo_modelo.DoesNotExist:
            tipo = tipo_modelo.objects.create(
                id=kodo,
                arkivo=False,
                publikigo=True,
                publikiga_dato=timezone.now(),
                forigo=False
            )
            set_enhavo(tipo.nomo, nomo, 'ru_RU')
            tipo.save()


def kanvasoj_objekto_ligilo_one(apps, schema_editor):
    '''
        Копируем данные в поле OneToOne
    '''
    ligilo_modelo = apps.get_model('kanvasoj', 'KanvasoObjektoLigilo')

    for ligilo in ligilo_modelo.objects.all():
        if ligilo.ligilo:
            try:
                ligilo_one = ligilo_modelo.objects.get(ligilo_one = ligilo.ligilo)
                ligilo.delete()
            except ligilo_modelo.DoesNotExist:
                ligilo.ligilo_one = ligilo.ligilo
                ligilo.save()


class Migration(migrations.Migration):

    dependencies = [
        ('kanvasoj', '0002_auto_20230826_1111'),
    ]

    operations = [
        migrations.AddField(
            model_name='kanvasoobjektoligilo',
            name='ligilo_one',
            field=models.OneToOneField(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='kanvasoj_kanvasoobjektoligilo_ligilo_one', to='kanvasoj.kanvasoobjekto', verbose_name='Kanvaso objekto ligilo'),
        ),
        migrations.AlterField(
            model_name='kanvasoobjektoligilo',
            name='posedanto',
            field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='kanvasoj_kanvasoobjektoligilo_posedanto', to='kanvasoj.kanvasoobjekto', verbose_name='Kanvaso objekto posedanto'),
        ),
        migrations.RunPython(kanvasoj_objekto_ligilo_tipoj),
        migrations.RunPython(kanvasoj_objekto_ligilo_one),
    ]
